Создание Docker для Yii2 на локальной машине
Чтобы создать Docker-контейнер для приложения Yii2 на вашей локальной машине, выполните следующие шаги:
1. Установка Docker
Если у вас еще не установлен Docker, скачайте и установите его с официального сайта Docker.
2. Создание структуры проекта
Создайте новую директорию для вашего проекта Yii2 и перейдите в нее:
bash
1 2 | mkdir yii2-docker-app cd yii2-docker-app |
3. Создание Dockerfile
Создайте файл Dockerfile
в корне вашего проекта с содержимым:
dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # Используем официальный образ PHP с необходимыми расширениями FROM php:8.0-fpm # Установка необходимых расширений RUN docker-php-ext-install pdo pdo_mysql # Установка Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # Установка рабочей директории WORKDIR /var/www # Копируем файлы проекта в контейнер COPY . . # Установка зависимостей через Composer RUN composer install |
4. Создание docker-compose.yml
Создайте файл docker-compose.yml
в корне вашего проекта:
yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | version: '3.8' services: app: build: context: . dockerfile: Dockerfile volumes: - .:/var/www ports: - "8000:80" depends_on: - db db: image: mysql:5.7 restart: always environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: yii2_db MYSQL_USER: user MYSQL_PASSWORD: password volumes: - db_data:/var/lib/mysql volumes: db_data: |
5. Настройка конфигурации Yii2
Вам нужно будет настроить подключение к базе данных в файле config/db.php
вашего приложения Yii2:
php
1 2 3 4 5 6 7 | return [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=db;dbname=yii2_db', 'username' => 'user', 'password' => 'password', 'charset' => 'utf8', ]; |
6. Запуск контейнеров
Теперь вы готовы запустить ваше приложение. В терминале выполните команду:
bash
1 | docker-compose up -d |
Эта команда создаст и запустит контейнеры в фоновом режиме.
7. Доступ к приложению
После успешного запуска контейнеров, вы сможете получить доступ к вашему приложению по адресу http://localhost:8000.